Traitement des erreurs REST
En cas d'échec, différents codes d'état HTTP peuvent être renvoyés selon la nature et l'emplacement de l'échec en cours de traitement.VoiceCheck fait appel à l'infrastructure Apache® CXF pour traiter les demandes de services Web, et cette infrastructure peut renvoyer des erreurs pendant ce traitement telles que « 406 – Not Acceptable » (Non acceptable) ou « 415 – Unsupported Media Type » (Type de support non pris en charge), avant qu'une communication ne soit établie avec la logique métier de VoiceCheck.
Deux codes d’état seulement peuvent être attribués aux erreurs provenant de la logique métier VoiceCheck :
- 400 – Bad Request (Demande incorrecte) : le client a enfreint une règle métier ou une contrainte (en général, données incorrectes). Le renvoi du message sans modifier le contenu engendrera la même erreur.
- 500 – Internal Server Error (Erreur interne du serveur) : une erreur interne du serveur s’est produite pendant le traitement de la demande. Il est alors POSSIBLE de renvoyer le message avec succès.
De même, les erreurs provenant de la logique métier VoiceCheck comprennent un élément XML faultInfo contenant un complément d’information sur l’erreur qui s’est produite. Les propriétés de l’élément faultInfo sont indiquées ci-dessous.
Traitement des erreurs SOAP
Des erreurs SOAP 1.1 sont renvoyées pour toutes les erreurs. Toutes les erreurs contiennent un code d’erreur et une chaîne d’erreur conformes aux spécifications de SOAP 1.1. Deux des principaux codes d'erreur de SOAP 1.1, Client et Serveur, sont indiqués pour la plupart des erreurs. VoiceCheck utilise généralement ces codes selon la méthode décrite dans la spécification SOAP 1.1.
Certaines erreurs susceptibles de se produire lors de l’authentification utilisent des codes d’erreur spécifiés dans WS-Security (Web Services Security). Les interfaces API et implémentations de services Web Java peuvent renvoyer d’autres codes d’erreur.
S’il est impossible d’énumérer tous les codes d’erreur susceptibles de se produire, il existe un certain nombre de règles générales permettant de traiter uniformément les erreurs par les clients de services Web :
- Les codes d’erreur autres que Serveur signifient habituellement qu’il est inutile de renvoyer automatiquement le message. Ils sont envoyés lorsque le client a commis une erreur avant que la transmission ne parvienne à la logique de l’application sur le serveur, par exemple, en cas d’échec d’authentification ou de message formulé incorrectement.
- Pour les codes d’erreur de type Serveur, si l’erreur provient de la logique du serveur de l’application, elle contiendra l’élément détail d’erreur SOAP 1.1. Le format est spécifié dans le fichier WSDL, mais contient les informations décrites dans la section ci-dessous.
Élément d’information sur l’erreur
Les services Web REST et SOAP contiennent les mêmes informations d’erreur lorsque celle-ci provient de la logique du serveur d’application VoiceCheck.
L'implémentation REST du serveur hôte pour la publication des résultats de tâches doit utiliser cet élément d'information sur l'erreur afin d'afficher le message d'erreur dans l'interface utilisateur de VoiceCheck; sinon, l'utilisateur verra un message générique.
errorCode | long | Code numérique représentant l’erreur. Valeurs valides : 3000 = Internal server error (le renvoi de la demande peut aboutir ou pas) 3001 = Bad request (renvoi automatique de la demande non recommandé) |
message | chaîne | Message interprétable par l'utilisateur expliquant l'erreur. |